home *** CD-ROM | disk | FTP | other *** search
- /*==================================================================
- File: MacOS_UAppleEvents.cpp
-
- Contains: AppleEvent utility classes.
-
- Written by: Ed Reed
-
- Copyright: © 1999 Connectix Corporation
- ==================================================================*/
-
- #include "MacOS_UAppleEvents.h"
-
- #include "MacOS_AppleEventUtils.h"
- #include "MacOS_Exceptions.h"
- #include "MacOS_Namespaces.h"
-
- #ifndef __AEPACKOBJECT__
- #include <AEPackObject.h>
- #endif
-
- #include <cstring>
-
-
- CTX_Begin_Namespace_MacOS
-
-
- /*******************************************************************
- GLOBALS
- *******************************************************************/
-
- const TAEDescriptor<Boolean> kAETrueDescriptor(true);
- const TAEDescriptor<Boolean> kAEFalseDescriptor(false);
- const TAEDescriptor<ProcessSerialNumber> kAEThisProcessDescriptor(kCurrentProcessPSN);
-
- /*******************************************************************
- AEDescriptor
- *******************************************************************/
-
- #pragma mark AEDescriptor
-
- /*------------------------------------------------------------------
- AEDescriptor
-
- This is a constructor for this class. It creates a copy of the
- specified descriptor.
-
- Parameters:
- In: inAEDesc - the descriptor to copy
- Out: (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- AEDescriptor::AEDescriptor(const AEDesc & inAEDesc)
- {
- OSErr status;
- status = ::AEDuplicateDesc(&inAEDesc, this);
- require (status == noErr, FailedToCreateDesc);
-
- return;
-
- FailedToCreateDesc:
- descriptorType = typeNull;
- dataHandle = NULL;
- return;
- }
-
-
- /*------------------------------------------------------------------
- AEDescriptor
-
- This is a constructor for this class. It creates a descriptor
- of the specified type from the given data.
-
- Parameters:
- In: inData - the data to copy
- inSize - the size of the data
- inDataType - the type of descriptor to create
- Out: (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- AEDescriptor::AEDescriptor( DescType inDataType,
- const void * inData,
- Size inSize)
- {
- OSErr status;
- status = ::AECreateDesc(inDataType, inData, inSize, this);
- require (status == noErr, FailedToCreateDesc);
-
- return;
-
- FailedToCreateDesc:
- descriptorType = typeNull;
- dataHandle = NULL;
- return;
- }
-
-
- /*------------------------------------------------------------------
- AEDescriptor
-
- This is a constructor for this class. It creates a descriptor
- of the specified type from a handle to the given data.
-
- Parameters:
- In: inData - the handle to the data to copy
- inDataType - the type of descriptor to create
- ------------------------------------------------------------------*/
-
- AEDescriptor::AEDescriptor( DescType inDataType,
- Handle inData)
- {
- OSErr status;
- status = CTX_MacOS::AECreateHandleDesc(inDataType, inData, this);
- require (status == noErr, FailedToCreateDesc);
-
- return;
-
- FailedToCreateDesc:
- descriptorType = typeNull;
- dataHandle = NULL;
- return;
- }
-
-
- /*------------------------------------------------------------------
- AEDescriptor
-
- This is a constructor for this class. It creates a "typeType"
- descriptor of the specified type.
-
- Parameters:
- In: inData - the type of the type descriptor to create
- ------------------------------------------------------------------*/
-
- AEDescriptor::AEDescriptor( DescType inDataType )
- {
- OSErr status;
- status = ::AECreateDesc(typeType, &inDataType, sizeof( DescType ), this);
- require (status == noErr, FailedToCreateDesc);
-
- return;
-
- FailedToCreateDesc:
- descriptorType = typeNull;
- dataHandle = NULL;
- }
-
-
- /*------------------------------------------------------------------
- Assign
-
- This method makes this object a copy of inAEDesc
-
- Parameters:
- In: inAEDesc - the descriptor to copy
- Out: (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- OSErr
- AEDescriptor::AssignDesc(const AEDesc & inAEDesc)
- {
- if (descriptorType != typeNull)
- ::AEDisposeDesc(this);
- return ::AEDuplicateDesc(&inAEDesc, this);
- }
-
-
- /*------------------------------------------------------------------
- Assign
-
- This method makes this object a descriptor of the specified
- type using from the specified data.
-
- Parameters:
- In: inData - the data to copy
- inSize - the size of the data
- inDataType - the type of descriptor to create
- Out: (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- OSErr
- AEDescriptor::Assign( DescType inDataType,
- const void * inData,
- Size inSize)
- {
- if (descriptorType != typeNull)
- ::AEDisposeDesc(this);
- return ::AECreateDesc(inDataType, inData, inSize, this);
- }
-
- /*------------------------------------------------------------------
- Assign
-
- This method makes this object a descriptor of the specified
- type using the data in the handle.
-
- Parameters:
- In: inHandle - the handle to the data to copy
- inDataType - the type of descriptor to create
- Out: (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- OSErr
- AEDescriptor::Assign( DescType inDataType,
- Handle inData)
- {
- if (descriptorType != typeNull)
- ::AEDisposeDesc(this);
- return CTX_MacOS::AECreateHandleDesc(inDataType, inData, this);
- }
-
-
- /*------------------------------------------------------------------
- GetCString
-
- This method gets the descriptor data formatted as a C string.
- The data is coerced to typeText if necessary.
-
- Parameters:
- In: inMaxLength - the size of the output buffer
- Out: outCString - a C string
- (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- OSErr
- AEDescriptor::GetCString( char * outCString,
- Size inMaxLength) const
- {
- OSErr status;
- Size length = inMaxLength;
-
- if (descriptorType == typeText)
- {
- length = Min32(GetDataSize(), inMaxLength);
- status = GetData(typeText, outCString, length);
- }
- else
- {
- AEDescriptor coercedValue;
- status = CoerceToDesc(typeText, coercedValue);
- require (status == noErr, FailedToCoerceDesc);
-
- length = Min32(coercedValue.GetDataSize(), inMaxLength);
- status = coercedValue.GetData(typeText, outCString, length);
-
- FailedToCoerceDesc:
- ;
- }
-
- if (status == noErr && length < inMaxLength)
- outCString[length] = 0;
-
- return status;
- }
-
- /*------------------------------------------------------------------
- GetPString
-
- This method gets the descriptor data formatted as a C string.
- The data is coerced to typeText if necessary.
-
- Parameters:
- In: inMaxLength - the maximum pascal string length
- Out: outPString - a Pascal string
- (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- OSErr
- AEDescriptor::GetPString( StringPtr outPString,
- Size inMaxLength) const
- {
- OSErr status;
- Size length = inMaxLength;
-
- if (descriptorType == typeText)
- {
- length = Min32(GetDataSize(), inMaxLength);
- status = GetData(typeText, outPString + 1, length);
- }
- else
- {
- AEDescriptor coercedValue;
- status = CoerceToDesc(typeText, coercedValue);
- require (status == noErr, FailedToCoerceDesc);
-
- length = Min32(coercedValue.GetDataSize(), inMaxLength);
- status = coercedValue.GetData(typeText, outPString + 1, length);
-
- FailedToCoerceDesc:
- ;
- }
-
- if (status == noErr)
- outPString[0] = length;
-
- return status;
- }
-
- /*******************************************************************
- AEDescriptorList
- *******************************************************************/
-
- #pragma mark -
- #pragma mark AEDescriptorList
-
- /*------------------------------------------------------------------
- AEDescriptorList
-
- This is a constructor for this class.
-
- Parameters:
- In: inFactoringPtr - a pointer to data at the beggining
- of each descriptor that is the
- same for all elements of the list
- inSize - the size of the above data
- ------------------------------------------------------------------*/
-
- AEDescriptorList::AEDescriptorList( const void * inFactoringPtr,
- Size inSize)
- {
- OSErr status;
- status = ::AECreateList(inFactoringPtr, inSize, false, this);
- require (status == noErr, FailedToCreateDesc);
-
- return;
-
- FailedToCreateDesc:
- descriptorType = typeNull;
- dataHandle = NULL;
- return;
- }
-
- /*------------------------------------------------------------------
- AEDescriptorList
-
- This is the copy constructor for this class.
-
- Parameters:
- In: inOriginal - the descriptor list to copy
- ------------------------------------------------------------------*/
-
- AEDescriptorList::AEDescriptorList(const AEDesc & inOriginal)
- {
- require (inOriginal.descriptorType == typeAEList, OriginalNotAList);
-
- OSErr status;
- status = ::AEDuplicateDesc(&inOriginal, this);
- require (status == noErr, FailedToDuplicateDesc);
-
- return;
-
- FailedToDuplicateDesc:
- OriginalNotAList:
- descriptorType = typeNull;
- dataHandle = NULL;
- return;
- }
-
-
- /*------------------------------------------------------------------
- AEDescriptorList
-
- This is the copy constructor for this class.
-
- Parameters:
- In: inOriginal - the descriptor list to copy
- ------------------------------------------------------------------*/
-
- AEDescriptorList::AEDescriptorList(const AEDescriptorList & inOriginal)
- {
- OSErr status;
- status = ::AEDuplicateDesc(&inOriginal, this);
- require (status == noErr, FailedToDuplicateDesc);
-
- return;
-
- FailedToDuplicateDesc:
- OriginalNotAList:
- descriptorType = typeNull;
- dataHandle = NULL;
- return;
- }
-
-
- /*------------------------------------------------------------------
- PutCStringItem
-
- This method adds an item or sets the specified item's data to
- the C string.
-
- Parameters:
- In: inCString - the C string
- inIndex - the index of the item to set; 0 appends
- a new item to the list
- Out: (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- OSErr
- AEDescriptorList::PutCStringItem( const char * inCString,
- SInt32 inIndex)
- {
- AEDescriptor string(typeText, inCString, std::strlen(inCString));
- require (string.descriptorType != typeNull, FailedToCreateDesc);
-
- return PutItemDesc(string, inIndex);
-
- FailedToCreateDesc:
- return memFullErr;
- }
-
- /*------------------------------------------------------------------
- PutPStringItem
-
- This method adds an item or sets the specified item's data to
- the P string.
-
- Parameters:
- In: inPString - the Pascal string
- inIndex - the index of the item to set; 0 appends
- a new item to the list
- Out: (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- OSErr
- AEDescriptorList::PutPStringItem( ConstStringPtr inPString,
- SInt32 inIndex)
- {
- AEDescriptor string(typeText, inPString + 1, StrLength(inPString));
- require (string.descriptorType != typeNull, FailedToCreateDesc);
-
- return PutItemDesc(string, inIndex);
-
- FailedToCreateDesc:
- return memFullErr;
- }
-
- /*------------------------------------------------------------------
- PutBooleanItem
-
- This method adds an item or sets the specified item's data to
- the boolean value.
-
- Parameters:
- In: inBool - the boolean value
- inIndex - the index of the item to set; 0 appends
- a new item to the list
- Out: (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- OSErr
- AEDescriptorList::PutBooleanItem( Boolean inBool,
- SInt32 inIndex)
- {
- AEDescriptor boolItem(typeBoolean, &inBool, sizeof(inBool));
- require (boolItem.descriptorType != typeNull, FailedToCreateDesc);
-
- return PutItemDesc(boolItem, inIndex);
-
- FailedToCreateDesc:
- return memFullErr;
- }
-
-
- /*------------------------------------------------------------------
- GetCStringItem
-
- This method gets the nth item as a C string.
-
- Parameters:
- In: inIndex - the index of the item to get; the
- first item starts with 1
- inMaxLength - the size of the output buffer
- Out: outCString - a C string
- (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- OSErr
- AEDescriptorList::GetCStringItem( SInt32 inIndex,
- char * outCString,
- Size inMaxLength)
- {
- OSErr status;
-
- AEDescriptor itemDesc;
- status = GetItemDesc(inIndex, typeWildCard, itemDesc);
- require (status == noErr, FailedToGetItem);
-
- status = itemDesc.GetCString(outCString, inMaxLength);
-
- FailedToGetItem:
- return status;
- }
-
- /*------------------------------------------------------------------
- GetPStringItem
-
- This method gets the nth item as a Pascal string.
-
- Parameters:
- In: inIndex - the index of the item to get; the
- first item starts with 1
- inMaxLength - the size of the output buffer
- Out: outPString - a Pascal string
- (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- OSErr
- AEDescriptorList::GetPStringItem( SInt32 inIndex,
- StringPtr outPString,
- Size inMaxLength)
- {
- OSErr status;
-
- AEDescriptor itemDesc;
- status = GetItemDesc(inIndex, typeWildCard, itemDesc);
- require (status == noErr, FailedToGetItem);
-
- status = itemDesc.GetPString(outPString, inMaxLength);
-
- FailedToGetItem:
- return status;
- }
-
-
- /*------------------------------------------------------------------
- GetBooleanItem
-
- This method gets the nth item as a boolean value.
-
- Parameters:
- In: inIndex - the index of the item to get; the
- first item starts with 1
- Out: outBoolean - a Boolean value
- (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- OSErr
- AEDescriptorList::GetBooleanItem( SInt32 inIndex,
- Boolean& outBoolean)
- {
- OSErr status;
-
- AEDescriptor itemDesc;
- status = GetItemDesc(inIndex, typeWildCard, itemDesc);
- require (status == noErr, FailedToGetItem);
-
- status = itemDesc.GetData( typeBoolean, outBoolean );
-
- FailedToGetItem:
- return status;
- }
-
-
- /*******************************************************************
- AEDescriptorRecord
- *******************************************************************/
-
- #pragma mark -
- #pragma mark AEDescriptorRecord
-
- /*------------------------------------------------------------------
- AEDescriptorRecord
-
- This is a constructor for this class.
-
- Parameters:
- In: inFactoringPtr - a pointer to data at the beggining
- of each descriptor that is the
- same for all elements of the list
- inSize - the size of the above data
- ------------------------------------------------------------------*/
-
- AEDescriptorRecord::AEDescriptorRecord( const void * inFactoringPtr,
- Size inSize)
- {
- OSErr status;
- status = ::AECreateList(inFactoringPtr, inSize, true, this);
- require (status == noErr, FailedToCreateDesc);
-
- return;
-
- FailedToCreateDesc:
- descriptorType = typeNull;
- dataHandle = NULL;
- return;
- }
-
- /*------------------------------------------------------------------
- AEDescriptorRecord
-
- This is the copy constructor for this class.
-
- Parameters:
- In: inOriginal - the record descriptor to copy
- ------------------------------------------------------------------*/
-
- AEDescriptorRecord::AEDescriptorRecord(const AEDesc & inOriginal)
- {
- require (inOriginal.descriptorType == typeAERecord, OriginalNotARecord);
-
- OSErr status;
- status = ::AEDuplicateDesc(&inOriginal, this);
- require (status == noErr, FailedToDuplicateDesc);
-
- return;
-
- FailedToDuplicateDesc:
- OriginalNotARecord:
- descriptorType = typeNull;
- dataHandle = NULL;
- return;
- }
-
-
- /*------------------------------------------------------------------
- AEDescriptorRecord
-
- This is the copy constructor for this class.
-
- Parameters:
- In: inOriginal - the record descriptor to copy
- ------------------------------------------------------------------*/
-
- AEDescriptorRecord::AEDescriptorRecord(const AEDescriptorRecord & inOriginal)
- {
- OSErr status;
- status = ::AEDuplicateDesc(&inOriginal, this);
- require (status == noErr, FailedToDuplicateDesc);
-
- return;
-
- FailedToDuplicateDesc:
- descriptorType = typeNull;
- dataHandle = NULL;
- return;
- }
-
-
- /*------------------------------------------------------------------
- PutCStringKey
-
- This method sets the specified keywords's data to the C string.
-
- Parameters:
- In: inKey - the keyword
- inCString - the C string
- Out: (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- OSErr
- AEDescriptorRecord::PutCStringKey( AEKeyword inKey,
- const char * inCString)
- {
- AEDescriptor string(typeText, inCString, std::strlen(inCString));
- require (string.descriptorType != typeNull, FailedToCreateDesc);
-
- return PutKeyDesc(inKey, string);
-
- FailedToCreateDesc:
- return memFullErr;
- }
-
- /*------------------------------------------------------------------
- PutPStringKey
-
- This method sets the specified keywords's data to the Pascal string.
-
- Parameters:
- In: inKey - the keyword
- inPString - the Pascal string
- Out: (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- OSErr
- AEDescriptorRecord::PutPStringKey( AEKeyword inKey,
- ConstStringPtr inPString)
- {
- AEDescriptor string(typeText, inPString + 1, StrLength(inPString));
- require (string.descriptorType != typeNull, FailedToCreateDesc);
-
- return PutKeyDesc(inKey, string);
-
- FailedToCreateDesc:
- return memFullErr;
- }
-
- /*------------------------------------------------------------------
- GetCStringKey
-
- This method gets the keyword data as a C string.
-
- Parameters:
- In: inKey - the keyword
- inMaxLength - the size of the output buffer
- Out: outCString - a C string
- (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- OSErr
- AEDescriptorRecord::GetCStringKey( AEKeyword inKey,
- char * outCString,
- Size inMaxLength)
- {
- OSErr status;
-
- AEDescriptor itemDesc;
- status = GetKeyDesc(inKey, typeWildCard, itemDesc);
- require (status == noErr, FailedToGetKey);
-
- status = itemDesc.GetCString(outCString, inMaxLength);
-
- FailedToGetKey:
- return status;
- }
-
- /*------------------------------------------------------------------
- GetCStringKey
-
- This method gets the keyword data as a Pascal string.
-
- Parameters:
- In: inKey - the keyword
- inMaxLength - the size of the output buffer
- Out: outPString - a Pascal string
- (return) - non-zero indicates an error
- ------------------------------------------------------------------*/
-
- OSErr
- AEDescriptorRecord::GetPStringKey( AEKeyword inKey,
- StringPtr outPString,
- Size inMaxLength)
- {
- OSErr status;
-
- AEDescriptor itemDesc;
- status = GetKeyDesc(inKey, typeWildCard, itemDesc);
- require (status == noErr, FailedToGetKey);
-
- status = itemDesc.GetPString(outPString, inMaxLength);
-
- FailedToGetKey:
- return status;
- }
-
- /*******************************************************************
- AEObjSpecifier
- *******************************************************************/
-
- #pragma mark -
- #pragma mark AEObjSpecifier
-
- /*------------------------------------------------------------------
- AEObjSpecifier
-
- This is a constructor for this class. It builds an object
- specifier record given the following parameters:
-
- Parameters:
- In: inDesiredClass - the class of the object
- inKeyForm - the key form
- inKeyData - the key data
- inContainer - the object container
- ------------------------------------------------------------------*/
-
- AEObjSpecifier::AEObjSpecifier(
- DescType inDesiredClass,
- DescType inKeyForm,
- const AEDesc& inKeyData,
- const AEDesc& inContainer)
- : AEDescriptorRecord(kAESuppressCreate)
- {
- OSErr status;
- status = ::CreateObjSpecifier(
- inDesiredClass,
- const_cast<AEDesc*>(&inContainer),
- inKeyForm,
- const_cast<AEDesc*>(&inKeyData),
- false,
- this);
- require (status == noErr, FailedToCreateObjectSpecifier);
-
- return;
-
- FailedToCreateObjectSpecifier:
- descriptorType = typeNull;
- dataHandle = NULL;
- return;
- }
-
- /*******************************************************************
- AEAppleEvent
- *******************************************************************/
-
- #pragma mark -
- #pragma mark AEAppleEvent
-
- /*------------------------------------------------------------------
- AEAppleEvent
-
- This is a constructor for this class. It builds an AppleEvent
- record given the following parameters:
-
- Parameters:
- In: inAEClass - the event class
- inAEEventID - the event ID
- inTarget - the receipient's PSN
- inReturnID - the return ID of the event
- inTransactionID - the transaction ID of the event
- ------------------------------------------------------------------*/
-
- AEAppleEvent::AEAppleEvent(
- AEEventClass inAEClass,
- AEEventID inAEEventID,
- const ProcessSerialNumber& inTarget,
- AEReturnID inReturnID,
- AETransactionID inTransactionID)
- : AEDescriptorRecord(kAESuppressCreate)
- {
- TAEDescriptor<ProcessSerialNumber> targetDesc(inTarget);
- MakeAppleEvent(inAEClass, inAEEventID, targetDesc, inReturnID, inTransactionID);
- }
-
- /*------------------------------------------------------------------
- AEAppleEvent
-
- This is a constructor for this class. It builds an AppleEvent
- record given the following parameters:
-
- Parameters:
- In: inAEClass - the event class
- inAEEventID - the event ID
- inTarget - the receipient's application
- signature
- inReturnID - the return ID of the event
- inTransactionID - the transaction ID of the event
- ------------------------------------------------------------------*/
-
- AEAppleEvent::AEAppleEvent(
- AEEventClass inAEClass,
- AEEventID inAEEventID,
- OSType inTarget,
- AEReturnID inReturnID,
- AETransactionID inTransactionID)
- : AEDescriptorRecord(kAESuppressCreate)
- {
- TAEDescriptor<OSType> targetDesc(typeApplSignature, inTarget);
- MakeAppleEvent(inAEClass, inAEEventID, targetDesc, inReturnID, inTransactionID);
- }
-
- /*------------------------------------------------------------------
- AEAppleEvent
-
- This is a copy constructor for this class.
-
- Parameters:
- In: inOriginal - the original AEDesc to copy
- ------------------------------------------------------------------*/
-
- AEAppleEvent::AEAppleEvent(const AEDesc & inOriginal)
- {
- require (inOriginal.descriptorType == typeAppleEvent, OriginalNotAnAppleEvent);
-
- OSErr status;
- status = ::AEDuplicateDesc(&inOriginal, this);
- require (status == noErr, FailedToDuplicateDesc);
-
- return;
-
- FailedToDuplicateDesc:
- OriginalNotAnAppleEvent:
- descriptorType = typeNull;
- dataHandle = NULL;
- return;
- }
-
- /*------------------------------------------------------------------
- AEAppleEvent
-
- This is a copy constructor for this class.
-
- Parameters:
- In: inOriginal - the original object to copy
- ------------------------------------------------------------------*/
-
- AEAppleEvent::AEAppleEvent(const AEAppleEvent & inOriginal)
- {
- OSErr status;
- status = ::AEDuplicateDesc(&inOriginal, this);
- require (status == noErr, FailedToDuplicateDesc);
-
- return;
-
- FailedToDuplicateDesc:
- OriginalNotAnAppleEvent:
- descriptorType = typeNull;
- dataHandle = NULL;
- return;
- }
-
-
- /*------------------------------------------------------------------
- AEAppleEvent
-
- This is a default constructor for this class. It is intended
- to be used for declaring an AppleEvent to hold a reply,
- because it does not actually create an AppleEvent.
-
- Parameters: none
- ------------------------------------------------------------------*/
-
- AEAppleEvent::AEAppleEvent()
- {
- descriptorType = typeNull;
- dataHandle = NULL;
- }
-
-
- /*------------------------------------------------------------------
- FinishCreate
-
- This is a common routine used by the various constructors.
-
- Parameters:
- In: inAEClass - the event class
- inAEEventID - the event ID
- inTarget - the receipient of the AppleEvent
- inReturnID - the return ID of the event
- inTransactionID - the transaction ID of the event
- ------------------------------------------------------------------*/
-
- void
- AEAppleEvent::MakeAppleEvent(
- AEEventClass inAEClass,
- AEEventID inAEEventID,
- const AEDesc& inTarget,
- AEReturnID inReturnID,
- AETransactionID inTransactionID)
- {
- OSErr status;
- status = ::AECreateAppleEvent(inAEClass, inAEEventID,
- &inTarget, inReturnID, inTransactionID, this);
- require (status == noErr, FailedToCreateAppleEvent);
-
- return;
-
- FailedToCreateAppleEvent:
- descriptorType = typeNull;
- dataHandle = NULL;
- return;
- }
-
-
- CTX_End_Namespace_MacOS
-
-
- /*==================================================================
- Change History (most recent first):
-
- $Log: MacOS_UAppleEvents.cpp,v $
- ==================================================================*/
-